#ifndef UZYTKOWNIK_H
#define UZYTKOWNIK_H
#include <odb/core.hxx>
#include "base/Uzytkownik_BASE.h"
#include "base/Uzytkownik_BASE-odb.hxx"
#include "faktura.h"

class Uzytkownik: public Uzytkownik_BASE
{
public:
    enum UPRAWNIENIA{
        /**
          Brak uprawnień
          */
        BRAK = 0,
        /**
          Uprawnienia tylko do sprzedaży towarów i wystawienia faktury sprzedaży, Dodawanie kontrahenta.
          */
        SPRZEDAZ = 1,
        /**
          Uprawnienia do wprowadzania faktur sprzedaży i zakupów, kontrahentów. Przeglądania wszystkich zakupów itp.
          */
        UZYTKOWNIK =2,
        /**
          Wszystkie uprawnienia.
          */
        ADMINISTRATOR =3
    };

    Uzytkownik();
    unsigned long id();
    QString nazwa();
    bool    nazwa(const QString& nazwa);
    QString nazwisko();
    bool    nazwisko(const QString& nazwisko);
    QString imie();
    bool    imie(const QString& imie);
    bool    sprawdz_Haslo(const QString& haslo);
    bool    haslo(const QString& haslo);
    QDateTime ostatnie_Logowanie();
    UPRAWNIENIA uprawnienia();
    bool    uprawnienia(const UPRAWNIENIA& uprawnienia);
    QList < QWeakPointer< Faktura > > wprowadzone_Faktury();
    static Uzytkownik* loguj(const QString& nazwa, const QString& haslo)
    {
        return 0;
    }
    Uzytkownik_BASE getUser();

};

#endif // UZYTKOWNIK_H
